package cn.fl.ass.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.ass.vo.AssDealRedeemVO;
import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ass.facade.dto.AssDealRedeemDTO;

 /**
 * @Description: 处置赎回表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class AssDealRedeemVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto
	 * @return AssDealRedeemVO
	 */
	public static AssDealRedeemVO toVO(AssDealRedeemDTO dto) {
		AssDealRedeemVO  vo = null;
		if (dto != null) { 
			vo = new AssDealRedeemVO();
			vo.setId(dto.getId());
			vo.setMasterId(dto.getMasterId());//拖车ID
			vo.setDetailId(dto.getDetailId());//拖车明细ID
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setRedeemAddr(dto.getRedeemAddr());//赎回地点
			vo.setRedeemDesc(dto.getRedeemDesc());//赎回说明
			vo.setRedeemTm(dto.getRedeemTm());//预计赎回时间
			vo.setPickCarNm(dto.getPickCarNm());//提车人姓名
			vo.setPickCarCd(dto.getPickCarCd());//提车人证件号
			vo.setPickCarTel(dto.getPickCarTel());//提车人联系方式
			vo.setPayeeAccNm(dto.getPayeeAccNm());//收款方账户名称  
			vo.setPayeeAccNo(dto.getPayeeAccNo());//收款方银行账号
			vo.setPayeeBankNm(dto.getPayeeBankNm());//收款方开户银行
			vo.setPayeeBankNo(dto.getPayeeBankNo());//收款方开户行号 
			vo.setIsOnline(dto.getIsOnline());//GPS是否在线
			vo.setDepositBaseAmt(dto.getDepositBaseAmt());//赎回保证金计算基数默认融资额项（rze 融资额 hte 合同额）  
			vo.setDepositPct(dto.getDepositPct());//赎回保证金比例
			vo.setDepositAmt(dto.getDepositAmt());//赎回保证金
			vo.setOverdueAmt(dto.getOverdueAmt());//赎回逾期租金
			vo.setInterestAmt(dto.getInterestAmt());//赎回罚息
			vo.setRedeemAmt(dto.getRedeemAmt());//赎回金额
			vo.setReceivableAmt(dto.getReceivableAmt());//应收金额
			vo.setPayAmt(dto.getPayAmt());//付款金额
			vo.setActPayAmt(dto.getActPayAmt());//实收金额
			vo.setActPayTm(dto.getActPayTm());//实收时间
			vo.setRedeemTypeCd(dto.getRedeemTypeCd());//赎回方式(ASS0007)
			vo.setFlowStatusCd(dto.getFlowStatusCd());//流程状态(ASS0002)
			vo.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			vo.setAmtTypeCd(dto.getAmtTypeCd());//赎回保证金计算基数类型
			vo.setActOverdueAmt(dto.getActOverdueAmt());//实际赎回逾期租金
			vo.setActInterestAmt(dto.getActInterestAmt());//实际赎回罚息
			vo.setActRedeemAmt(dto.getActRedeemAmt());//实际赎回金额

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			//赎回流程附加信息页面需要
			vo.setBackedFlagCd(dto.getBackedFlagCd());//拖回标记
			vo.setContAmt(dto.getContAmt());//合同额
			vo.setActLsAmt(dto.getActLsAmt());//融资额
			vo.setActPayBackAmt(dto.getActPayBackAmt());//实际支付拖车费用
			vo.setBaseAmt(dto.getBaseAmt());//保底价
            // 结清对客irr
            vo.setCstStlIrr(dto.getCstStlIrr());
            // 结清优惠金额1
            vo.setDiscountAmt(dto.getDiscountAmt());

            vo.setRedeemWayCd(dto.getRedeemWayCd());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo
	 * @return AssDealRedeemDTO
	 */
	public static AssDealRedeemDTO toDTO(AssDealRedeemVO vo) {
		AssDealRedeemDTO dto = null;
		if (vo != null) {
			dto = new AssDealRedeemDTO();
			dto.setId(vo.getId());
			dto.setMasterId(vo.getMasterId());//拖车ID
			dto.setDetailId(vo.getDetailId());//拖车明细ID
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setRedeemAddr(vo.getRedeemAddr());//赎回地点
			dto.setRedeemDesc(vo.getRedeemDesc());//赎回说明
			dto.setRedeemTm(vo.getRedeemTm());//预计赎回时间
			dto.setPickCarNm(vo.getPickCarNm());//提车人姓名
			dto.setPickCarCd(vo.getPickCarCd());//提车人证件号
			dto.setPickCarTel(vo.getPickCarTel());//提车人联系方式
			dto.setPayeeAccNm(vo.getPayeeAccNm());//收款方账户名称  
			dto.setPayeeAccNo(vo.getPayeeAccNo());//收款方银行账号
			dto.setPayeeBankNm(vo.getPayeeBankNm());//收款方开户银行
			dto.setPayeeBankNo(vo.getPayeeBankNo());//收款方开户行号 
			dto.setIsOnline(vo.getIsOnline());//GPS是否在线
			dto.setDepositBaseAmt(vo.getDepositBaseAmt());//赎回保证金计算基数默认融资额项（rze 融资额 hte 合同额）  
			dto.setDepositPct(vo.getDepositPct());//赎回保证金比例
			dto.setDepositAmt(vo.getDepositAmt());//赎回保证金
			dto.setOverdueAmt(vo.getOverdueAmt());//赎回逾期租金
			dto.setInterestAmt(vo.getInterestAmt());//赎回罚息
			dto.setRedeemAmt(vo.getRedeemAmt());//赎回金额
			dto.setReceivableAmt(vo.getReceivableAmt());//应收金额
			dto.setPayAmt(vo.getPayAmt());//付款金额
			dto.setActPayAmt(vo.getActPayAmt());//实收金额
			dto.setActPayTm(vo.getActPayTm());//实收时间
			dto.setRedeemTypeCd(vo.getRedeemTypeCd());//赎回方式(ASS0007)
			dto.setFlowStatusCd(vo.getFlowStatusCd());//流程状态(ASS0002)
			dto.setIsDel(vo.getIsDel());//是否删除 1-删除 0-正常
			dto.setAmtTypeCd(vo.getAmtTypeCd());//赎回保证金计算基数类型
			dto.setActOverdueAmt(vo.getActOverdueAmt());//实际赎回逾期租金
			dto.setActInterestAmt(vo.getActInterestAmt());//实际赎回罚息
			dto.setActRedeemAmt(vo.getActRedeemAmt());//实际赎回金额

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			//赎回流程附加信息页面需要
			dto.setBackedFlagCd(vo.getBackedFlagCd());//拖回标记
			dto.setContAmt(vo.getContAmt());//合同额
			dto.setActLsAmt(vo.getActLsAmt());//融资额
			dto.setActPayBackAmt(vo.getActPayBackAmt());//实际支付拖车费用
			dto.setBaseAmt(vo.getBaseAmt());//保底价
            // 结清对客irr
            dto.setCstStlIrr(vo.getCstStlIrr());
            // 结清优惠金额1
            dto.setDiscountAmt(vo.getDiscountAmt());

            dto.setRedeemWayCd(vo.getRedeemWayCd());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list
	 * @return List<AssDealRedeemVO>
	 */
	public static List<AssDealRedeemVO> toVOList(List<AssDealRedeemDTO> list) {
		List<AssDealRedeemVO>  voList = new ArrayList<AssDealRedeemVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealRedeemDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<AssDealRedeemVO>
	 * @return List<AssDealRedeemDTO>
	 */
	public static List<AssDealRedeemDTO> toDTOList(List<AssDealRedeemVO> list) {
		List<AssDealRedeemDTO>  dtoList = new ArrayList<AssDealRedeemDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealRedeemVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
